import UIKit

@available(iOS 7.0, *)
extension QKC where AA :UIMotionEffect {
    open func keyPathsAndRelativeValues_qk_f(forViewerOffset viewerOffset: UIOffset) -> QKC<AA,YY,ZZ,[String : Any]?>{
		 self +^ self.value.keyPathsAndRelativeValues(forViewerOffset:viewerOffset)
	}

}

@available(iOS 7.0, *)
extension QKC where AA :UIInterpolatingMotionEffect {
    open func keyPath_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.keyPath
	}

    open func type_qk_g() -> QKC<AA,YY,ZZ, UIInterpolatingMotionEffect.EffectType >{
		 self +^ self.value.type
	}

    open func minimumRelativeValue_qk_s(_ minimumRelativeValue:  Any?) -> QKC<AA,YY,ZZ, Any?>{
		return link(next: minimumRelativeValue).then_QK { $0.value.minimumRelativeValue = minimumRelativeValue }
	}
    open func minimumRelativeValue_qk_g() -> QKC<AA,YY,ZZ, Any?>{
		 self +^ self.value.minimumRelativeValue
	}

    open func maximumRelativeValue_qk_s(_ maximumRelativeValue:  Any?) -> QKC<AA,YY,ZZ, Any?>{
		return link(next: maximumRelativeValue).then_QK { $0.value.maximumRelativeValue = maximumRelativeValue }
	}
    open func maximumRelativeValue_qk_g() -> QKC<AA,YY,ZZ, Any?>{
		 self +^ self.value.maximumRelativeValue
	}

}

@available(iOS 7.0, *)
extension QKC where AA :UIMotionEffectGroup {
    open func motionEffects_qk_s(_ motionEffects:  [UIMotionEffect]?) -> QKC<AA,YY,ZZ, [UIMotionEffect]?>{
		return link(next: motionEffects).then_QK { $0.value.motionEffects = motionEffects }
	}
    open func motionEffects_qk_g() -> QKC<AA,YY,ZZ, [UIMotionEffect]?>{
		 self +^ self.value.motionEffects
	}

}

